package main

import (
	"io/ioutil"
	"fmt"
	"time"
	"gopkg.in/yaml.v2"
	"GoBox/src/Bot"
	"path/filepath"
	"os"
)

//2023/6/27 实现读取配置文件,config.yaml
//初始化
var (
	GoBoxPath string
	FFMPEG_PATH string
	BotID int
	YunZaiPath string
	YunzaiBotPath string
	AlemonPath string
	NodePath string
)
// /c/Users/user1/file.txt C:\msys64\usr\local\GoBox
func init() {
	//配置环境变量
	os.Setenv("PATH", os.Getenv("PATH"))
	//打印环境变量
	homedir, err := os.UserHomeDir() //获取用户目录
	GoBoxHome := filepath.Join(homedir, "GoBox")
	//根据系统不同，进行转换，
	if err != nil {
		fmt.Println("获取用户GoBox目录失败...", err)
	}
	//打印家
	fmt.Println("用户目录:", homedir)
	configFile := "config.yaml"
	// 判断是否存在
	configPath := []string{".", "/usr/local/GoBox",GoBoxHome}
	for _, path := range configPath {
		config_path := path + "/" + configFile
		//根据系统不同，进行转换
		// config_path := filepath.Join(path, configFile)
		if _, err := os.Stat(config_path); os.IsNotExist(err) {
			continue
		} else {
			// 读取配置文件
			data, err := ioutil.ReadFile(config_path)
			if err != nil {
				fmt.Println("\033[31m读取配置文件失败\033[0m", err)
				time.Sleep(2 * time.Second)
			}
			var config Bot.Config //定义一个结构体
			//解析配置文件
			err = yaml.Unmarshal(data, &config)
			//打印data
			if err != nil {
				//红色
				fmt.Println("\033[31m解析配置文件失败\033[0m")
				return
			}
			//配置全局变量
			GoBoxPath = config.GoBoxPath
			FFMPEG_PATH := config.FFMPEG_PATH
			BotID = config.BotID
			YunZaiPath = config.YunZaiPath
			YunzaiBotPath = config.YunZaiBotPath
			AlemonPath = config.AlemonPath
			NodePath = config.NodePath
			// 传递变量
			Bot.Init(GoBoxPath, FFMPEG_PATH, YunZaiPath, AlemonPath, NodePath)
			Bot.Init1(YunzaiBotPath) // 云崽路径
			Bot.Init2(config_path) //配置文件路径
			
		}
	}



}

func main() {
	//打印菜单
	Bot.Menu(BotID)
}
